<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
*  \file
*
*  \brief       BMW SWC Stm  Stm_internal
*
*  \project     BMW Platform Software
*
*  \copyright   BMW AG 2017
*
*  \version     5.2.0
*
*  \remarks
*/
-->
<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 file:AUTOSAR_4-3-0_STRICT_COMPACT.xsd">
  <AR-PACKAGES>
    <AR-PACKAGE>
      <SHORT-NAME>BMW</SHORT-NAME>
      <ELEMENTS/>
      <AR-PACKAGES>
        <AR-PACKAGE>
          <SHORT-NAME>Platform</SHORT-NAME>
          <ELEMENTS/>
          <AR-PACKAGES>
            <AR-PACKAGE>
              <SHORT-NAME>Stm</SHORT-NAME>
              <ELEMENTS/>
              <AR-PACKAGES>

                <!--****************************************************************************
                **                      Type Definitions                                      **
                *****************************************************************************-->

                <!-- Types from Stm_interfaces.arxml are used -->

                <!--****************************************************************************
                **                      Interface Definitions                                 **
                *****************************************************************************-->

                <!-- Interface from Stm_interfaces.arxml are used -->

                <!--****************************************************************************
                **                      Component Description                                 **
                *****************************************************************************-->

                <AR-PACKAGE>
                  <SHORT-NAME>SwComponentTypes</SHORT-NAME>
                  <ELEMENTS>
                    <APPLICATION-SW-COMPONENT-TYPE>
                      <SHORT-NAME>Stm</SHORT-NAME>
                      <PORTS>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>CentralErrorLockModeSwitchPort</SHORT-NAME>
                          <PROVIDED-COM-SPECS>
                            <MODE-SWITCH-SENDER-COM-SPEC>
                              <ENHANCED-MODE-API>true</ENHANCED-MODE-API>
                              <MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</MODE-GROUP-REF>
                              <QUEUE-LENGTH>1</QUEUE-LENGTH>
                            </MODE-SWITCH-SENDER-COM-SPEC>
                          </PROVIDED-COM-SPECS>
                          <PROVIDED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>EnergyModeSwitchPort</SHORT-NAME>
                          <PROVIDED-COM-SPECS>
                            <MODE-SWITCH-SENDER-COM-SPEC>
                              <ENHANCED-MODE-API>true</ENHANCED-MODE-API>
                              <MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateModeInterface/currentEnergyMode</MODE-GROUP-REF>
                              <QUEUE-LENGTH>1</QUEUE-LENGTH>
                            </MODE-SWITCH-SENDER-COM-SPEC>
                          </PROVIDED-COM-SPECS>
                          <PROVIDED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/Stm/PortInterfaces/EnergyStateModeInterface</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>EMLockSignalReceptionModeNotificationPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/Stm/PortInterfaces/EMLockSignalReceptionModeInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>CentralErrorLockEnableCondition</SHORT-NAME>
                          <REQUIRED-COM-SPECS>
                            <CLIENT-COM-SPEC>
                              <OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/Stm/Dem/PortInterfaces/EnableCondition/SetEnableCondition</OPERATION-REF>
                            </CLIENT-COM-SPEC>
                          </REQUIRED-COM-SPECS>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/Stm/Dem/PortInterfaces/EnableCondition</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>CentralErrorLockRx</SHORT-NAME>
                          <REQUIRED-COM-SPECS>
                            <NONQUEUED-RECEIVER-COM-SPEC>
                              <DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockSignalInterface/centralErrorLock</DATA-ELEMENT-REF>
                              <HANDLE-OUT-OF-RANGE>NONE</HANDLE-OUT-OF-RANGE>
                              <USES-END-TO-END-PROTECTION>false</USES-END-TO-END-PROTECTION>
                              <ALIVE-TIMEOUT>21.0</ALIVE-TIMEOUT>
                              <ENABLE-UPDATE>false</ENABLE-UPDATE>
                              <HANDLE-NEVER-RECEIVED>false</HANDLE-NEVER-RECEIVED>
                              <HANDLE-TIMEOUT-TYPE>NONE</HANDLE-TIMEOUT-TYPE>
                              <INIT-VALUE>
                                <NUMERICAL-VALUE-SPECIFICATION>
                                  <SHORT-LABEL>InitValueCentralErrorLock</SHORT-LABEL>
                                  <VALUE>3</VALUE>
                                </NUMERICAL-VALUE-SPECIFICATION>
                              </INIT-VALUE>
                            </NONQUEUED-RECEIVER-COM-SPEC>
                          </REQUIRED-COM-SPECS>
                          <REQUIRED-INTERFACE-TREF DEST="SENDER-RECEIVER-INTERFACE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockSignalInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>EnergyModeRx</SHORT-NAME>
                          <REQUIRED-COM-SPECS>
                            <NONQUEUED-RECEIVER-COM-SPEC>
                              <DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateSignalInterface/energyState</DATA-ELEMENT-REF>
                              <HANDLE-OUT-OF-RANGE>NONE</HANDLE-OUT-OF-RANGE>
                              <USES-END-TO-END-PROTECTION>false</USES-END-TO-END-PROTECTION>
                              <ALIVE-TIMEOUT>21.0</ALIVE-TIMEOUT>
                              <ENABLE-UPDATE>false</ENABLE-UPDATE>
                              <HANDLE-NEVER-RECEIVED>false</HANDLE-NEVER-RECEIVED>
                              <HANDLE-TIMEOUT-TYPE>NONE</HANDLE-TIMEOUT-TYPE>
                              <INIT-VALUE>
                                <NUMERICAL-VALUE-SPECIFICATION>
                                  <SHORT-LABEL>InitValueEnergyModeRx</SHORT-LABEL>
                                  <VALUE>15</VALUE>
                                </NUMERICAL-VALUE-SPECIFICATION>
                              </INIT-VALUE>
                            </NONQUEUED-RECEIVER-COM-SPEC>
                          </REQUIRED-COM-SPECS>
                          <REQUIRED-INTERFACE-TREF DEST="SENDER-RECEIVER-INTERFACE">/BMW/Platform/Stm/PortInterfaces/EnergyStateSignalInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                      </PORTS>

                    <!--****************************************************************************
                    **                      Internal Behaviour                                    **
                    ******************************************************************************-->

                      <INTERNAL-BEHAVIORS>
                        <SWC-INTERNAL-BEHAVIOR>
                          <SHORT-NAME>Stm_InternalBehavior</SHORT-NAME>
                          <DATA-TYPE-MAPPING-REFS>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/Stm/DataTypeMappingSets/Stm_CentralErrorLockModeRequestTypeMap</DATA-TYPE-MAPPING-REF>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/Stm/DataTypeMappingSets/Stm_EnergyStateModeRequestTypeMap</DATA-TYPE-MAPPING-REF>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/Stm/DataTypeMappingSets/Stm_VehicleStatModeRequestTypeMap</DATA-TYPE-MAPPING-REF>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/Stm/DataTypeMappingSets/Stm_EMLS_Mapping</DATA-TYPE-MAPPING-REF>
                          </DATA-TYPE-MAPPING-REFS>
                          <!-- Stm ExclusiveAreas -->
                          <EXCLUSIVE-AREAS>
                            <EXCLUSIVE-AREA>
                              <SHORT-NAME>CentralErrorLockReadWrite_EA</SHORT-NAME>
                            </EXCLUSIVE-AREA>
                          </EXCLUSIVE-AREAS>
                          <EVENTS>
                            <DATA-RECEIVE-ERROR-EVENT>
                              <SHORT-NAME>DRET_Runnable_ErrorCentralErrorLock_CentralErrorLockRx_centralErrorLock</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/Runnable_ErrorCentralErrorLock</START-ON-EVENT-REF>
                              <DATA-IREF>
                                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockRx</CONTEXT-R-PORT-REF>
                                <TARGET-DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockSignalInterface/centralErrorLock</TARGET-DATA-ELEMENT-REF>
                              </DATA-IREF>
                            </DATA-RECEIVE-ERROR-EVENT>
                            <DATA-RECEIVE-ERROR-EVENT>
                              <SHORT-NAME>DRET_Runnable_ErrorEnergyMode_EnergyModeRx_energyState</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/Runnable_ErrorEnergyMode</START-ON-EVENT-REF>
                              <DATA-IREF>
                                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeRx</CONTEXT-R-PORT-REF>
                                <TARGET-DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateSignalInterface/energyState</TARGET-DATA-ELEMENT-REF>
                              </DATA-IREF>
                            </DATA-RECEIVE-ERROR-EVENT>
                            <SWC-MODE-SWITCH-EVENT>
                              <SHORT-NAME>MST_Runnable_StopCentralErrorLockSupervision_0</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/Runnable_StopCentralErrorLockSupervision</START-ON-EVENT-REF>
                              <ACTIVATION>ON-ENTRY</ACTIVATION>
                              <MODE-IREFS>
                                <MODE-IREF>
                                  <CONTEXT-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EMLockSignalReceptionModeNotificationPort</CONTEXT-PORT-REF>
                                  <CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EMLockSignalReceptionModeInterface/currentEMLockSignalReceptionMode</CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF>
                                  <TARGET-MODE-DECLARATION-REF DEST="MODE-DECLARATION">/BMW/Platform/Stm/ModeDeclarationGroups/ErrorMemoryLockSignalReceptionMode/EM_LOCK_NOT_RECEIVABLE</TARGET-MODE-DECLARATION-REF>
                                </MODE-IREF>
                              </MODE-IREFS>
                            </SWC-MODE-SWITCH-EVENT>
                            <SWC-MODE-SWITCH-EVENT>
                              <SHORT-NAME>MST_Runnable_InitialCELSupervision_0</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/Runnable_InitialCELSupervision</START-ON-EVENT-REF>
                              <ACTIVATION>ON-ENTRY</ACTIVATION>
                              <MODE-IREFS>
                                <MODE-IREF>
                                  <CONTEXT-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EMLockSignalReceptionModeNotificationPort</CONTEXT-PORT-REF>
                                  <CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EMLockSignalReceptionModeInterface/currentEMLockSignalReceptionMode</CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF>
                                  <TARGET-MODE-DECLARATION-REF DEST="MODE-DECLARATION">/BMW/Platform/Stm/ModeDeclarationGroups/ErrorMemoryLockSignalReceptionMode/EM_LOCK_RECEIVABLE</TARGET-MODE-DECLARATION-REF>
                                </MODE-IREF>
                              </MODE-IREFS>
                            </SWC-MODE-SWITCH-EVENT>
                            <DATA-RECEIVED-EVENT>
                              <SHORT-NAME>DRT_Runnable_ReceiveCentralErrorLock_CentralErrorLockRx_centralErrorLock</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/Runnable_ReceiveCentralErrorLock</START-ON-EVENT-REF>
                              <DATA-IREF>
                                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockRx</CONTEXT-R-PORT-REF>
                                <TARGET-DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockSignalInterface/centralErrorLock</TARGET-DATA-ELEMENT-REF>
                              </DATA-IREF>
                            </DATA-RECEIVED-EVENT>
                            <DATA-RECEIVED-EVENT>
                              <SHORT-NAME>DRT_Runnable_ReceiveEnergyMode_EnergyModeRx_energyState</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/Runnable_ReceiveEnergyMode</START-ON-EVENT-REF>
                              <DATA-IREF>
                                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeRx</CONTEXT-R-PORT-REF>
                                <TARGET-DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateSignalInterface/energyState</TARGET-DATA-ELEMENT-REF>
                              </DATA-IREF>
                            </DATA-RECEIVED-EVENT>
                          </EVENTS>
                          <HANDLE-TERMINATION-AND-RESTART>NO-SUPPORT</HANDLE-TERMINATION-AND-RESTART>
                          <PORT-API-OPTIONS>
                            <PORT-API-OPTION>
                              <ENABLE-TAKE-ADDRESS>false</ENABLE-TAKE-ADDRESS>
                              <INDIRECT-API>false</INDIRECT-API>
                              <PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EMLockSignalReceptionModeNotificationPort</PORT-REF>
                            </PORT-API-OPTION>
                            <PORT-API-OPTION>
                              <ENABLE-TAKE-ADDRESS>false</ENABLE-TAKE-ADDRESS>
                              <INDIRECT-API>false</INDIRECT-API>
                              <PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockEnableCondition</PORT-REF>
                            </PORT-API-OPTION>
                            <PORT-API-OPTION>
                              <ENABLE-TAKE-ADDRESS>false</ENABLE-TAKE-ADDRESS>
                              <INDIRECT-API>false</INDIRECT-API>
                              <PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</PORT-REF>
                            </PORT-API-OPTION>
                            <PORT-API-OPTION>
                              <ENABLE-TAKE-ADDRESS>false</ENABLE-TAKE-ADDRESS>
                              <INDIRECT-API>false</INDIRECT-API>
                              <PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockRx</PORT-REF>
                            </PORT-API-OPTION>
                            <PORT-API-OPTION>
                              <ENABLE-TAKE-ADDRESS>false</ENABLE-TAKE-ADDRESS>
                              <INDIRECT-API>false</INDIRECT-API>
                              <PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeSwitchPort</PORT-REF>
                            </PORT-API-OPTION>
                            <PORT-API-OPTION>
                              <ENABLE-TAKE-ADDRESS>false</ENABLE-TAKE-ADDRESS>
                              <INDIRECT-API>false</INDIRECT-API>
                              <PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeRx</PORT-REF>
                            </PORT-API-OPTION>
                          </PORT-API-OPTIONS>
                          <RUNNABLES>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>Runnable_ErrorCentralErrorLock</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
                              <RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                                <RUNS-INSIDE-EXCLUSIVE-AREA-REF DEST="EXCLUSIVE-AREA">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/CentralErrorLockReadWrite_EA</RUNS-INSIDE-EXCLUSIVE-AREA-REF>
                              </RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <MODE-SWITCH-POINTS>
                                <MODE-SWITCH-POINT>
                                  <SHORT-NAME>SWITCH_CentralErrorLockModeSwitchPort_currentCentralErrorLockMode</SHORT-NAME>
                                  <MODE-GROUP-IREF>
                                    <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                    <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-SWITCH-POINT>
                              </MODE-SWITCH-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>SC_CentralErrorLockEnableCondition_SetEnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockEnableCondition</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/Stm/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>Stm_ErrorCentralErrorLock</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>Runnable_StopCentralErrorLockSupervision</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
                              <RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                                <RUNS-INSIDE-EXCLUSIVE-AREA-REF DEST="EXCLUSIVE-AREA">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/CentralErrorLockReadWrite_EA</RUNS-INSIDE-EXCLUSIVE-AREA-REF>
                              </RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                              <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <MODE-SWITCH-POINTS>
                                <MODE-SWITCH-POINT>
                                  <SHORT-NAME>SWITCH_CentralErrorLockModeSwitchPort_currentCentralErrorLockMode</SHORT-NAME>
                                  <MODE-GROUP-IREF>
                                    <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                    <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-SWITCH-POINT>
                              </MODE-SWITCH-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>SC_CentralErrorLockEnableCondition_SetEnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockEnableCondition</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/Stm/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>Stm_StopCentralErrorLockSupervision</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>Runnable_InitialCELSupervision</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
                              <RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                                <RUNS-INSIDE-EXCLUSIVE-AREA-REF DEST="EXCLUSIVE-AREA">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/CentralErrorLockReadWrite_EA</RUNS-INSIDE-EXCLUSIVE-AREA-REF>
                              </RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                              <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>SC_CentralErrorLockEnableCondition_SetEnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockEnableCondition</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/Stm/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>Stm_InitialCentralErrorLockSupervision</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>Runnable_ReceiveCentralErrorLock</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
                              <RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                                <RUNS-INSIDE-EXCLUSIVE-AREA-REF DEST="EXCLUSIVE-AREA">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior/CentralErrorLockReadWrite_EA</RUNS-INSIDE-EXCLUSIVE-AREA-REF>
                              </RUNS-INSIDE-EXCLUSIVE-AREA-REFS>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <DATA-RECEIVE-POINT-BY-ARGUMENTS>
                                <VARIABLE-ACCESS>
                                  <SHORT-NAME>REC_CentralErrorLockRx_centralErrorLock</SHORT-NAME>
                                  <ACCESSED-VARIABLE>
                                    <AUTOSAR-VARIABLE-IREF>
                                      <PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockRx</PORT-PROTOTYPE-REF>
                                      <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockSignalInterface/centralErrorLock</TARGET-DATA-PROTOTYPE-REF>
                                    </AUTOSAR-VARIABLE-IREF>
                                  </ACCESSED-VARIABLE>
                                </VARIABLE-ACCESS>
                              </DATA-RECEIVE-POINT-BY-ARGUMENTS>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <MODE-SWITCH-POINTS>
                                <MODE-SWITCH-POINT>
                                  <SHORT-NAME>SWITCH_CentralErrorLockModeSwitchPort_currentCentralErrorLockMode</SHORT-NAME>
                                  <MODE-GROUP-IREF>
                                    <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockModeSwitchPort</CONTEXT-P-PORT-REF>
                                    <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/CentralErrorLockModeInterface/currentCentralErrorLockMode</TARGET-MODE-GROUP-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-SWITCH-POINT>
                              </MODE-SWITCH-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>SC_CentralErrorLockEnableCondition_SetEnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/CentralErrorLockEnableCondition</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/Stm/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>Stm_ReceiveCentralErrorLock</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>Runnable_ErrorEnergyMode</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeSwitchPort</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateModeInterface/currentEnergyMode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <MODE-SWITCH-POINTS>
                                <MODE-SWITCH-POINT>
                                  <SHORT-NAME>SWITCH_EnergyModeSwitchPort_currentEnergyMode</SHORT-NAME>
                                  <MODE-GROUP-IREF>
                                    <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeSwitchPort</CONTEXT-P-PORT-REF>
                                    <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateModeInterface/currentEnergyMode</TARGET-MODE-GROUP-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-SWITCH-POINT>
                              </MODE-SWITCH-POINTS>
                              <SYMBOL>Stm_ErrorEnergyMode</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>Runnable_ReceiveEnergyMode</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <DATA-RECEIVE-POINT-BY-ARGUMENTS>
                                <VARIABLE-ACCESS>
                                  <SHORT-NAME>REC_EnergyModeRx_energyState</SHORT-NAME>
                                  <ACCESSED-VARIABLE>
                                    <AUTOSAR-VARIABLE-IREF>
                                      <PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeRx</PORT-PROTOTYPE-REF>
                                      <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateSignalInterface/energyState</TARGET-DATA-PROTOTYPE-REF>
                                    </AUTOSAR-VARIABLE-IREF>
                                  </ACCESSED-VARIABLE>
                                </VARIABLE-ACCESS>
                              </DATA-RECEIVE-POINT-BY-ARGUMENTS>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeSwitchPort</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateModeInterface/currentEnergyMode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <MODE-SWITCH-POINTS>
                                <MODE-SWITCH-POINT>
                                  <SHORT-NAME>SWITCH_EnergyModeSwitchPort_currentEnergyMode</SHORT-NAME>
                                  <MODE-GROUP-IREF>
                                    <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/Stm/SwComponentTypes/Stm/EnergyModeSwitchPort</CONTEXT-P-PORT-REF>
                                    <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/Stm/PortInterfaces/EnergyStateModeInterface/currentEnergyMode</TARGET-MODE-GROUP-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-SWITCH-POINT>
                              </MODE-SWITCH-POINTS>
                              <SYMBOL>Stm_ReceiveEnergyMode</SYMBOL>
                            </RUNNABLE-ENTITY>
                          </RUNNABLES>
                          <SUPPORTS-MULTIPLE-INSTANTIATION>false</SUPPORTS-MULTIPLE-INSTANTIATION>
                        </SWC-INTERNAL-BEHAVIOR>
                      </INTERNAL-BEHAVIORS>
                    </APPLICATION-SW-COMPONENT-TYPE>
                  </ELEMENTS>
                </AR-PACKAGE>

                <!--****************************************************************************
                **                      Implementation                                        **
                *****************************************************************************-->

                <AR-PACKAGE>
                  <SHORT-NAME>SwcImplementations</SHORT-NAME>
                  <ELEMENTS>
                    <SWC-IMPLEMENTATION>
                      <SHORT-NAME>Stm_Implementation</SHORT-NAME>
                      <CODE-DESCRIPTORS>
                        <CODE>
                          <SHORT-NAME>Code</SHORT-NAME>
                          <CATEGORY>SRC</CATEGORY>
                          <ARTIFACT-DESCRIPTORS>
                            <AUTOSAR-ENGINEERING-OBJECT>
                              <SHORT-LABEL>Stm</SHORT-LABEL>
                              <CATEGORY>SWSRC</CATEGORY>
                            </AUTOSAR-ENGINEERING-OBJECT>
                          </ARTIFACT-DESCRIPTORS>
                        </CODE>
                      </CODE-DESCRIPTORS>
                      <PROGRAMMING-LANGUAGE>C</PROGRAMMING-LANGUAGE>
                      <RESOURCE-CONSUMPTION>
                        <SHORT-NAME>Stm</SHORT-NAME>
                      </RESOURCE-CONSUMPTION>
                      <SW-VERSION>5.2.0</SW-VERSION>
                      <USED-CODE-GENERATOR>Artt</USED-CODE-GENERATOR>
                      <VENDOR-ID>5</VENDOR-ID>
                      <BEHAVIOR-REF DEST="SWC-INTERNAL-BEHAVIOR">/BMW/Platform/Stm/SwComponentTypes/Stm/Stm_InternalBehavior</BEHAVIOR-REF>
                    </SWC-IMPLEMENTATION>
                  </ELEMENTS>
                </AR-PACKAGE>
              </AR-PACKAGES>
            </AR-PACKAGE>
          </AR-PACKAGES>
        </AR-PACKAGE>
      </AR-PACKAGES>
    </AR-PACKAGE>
  </AR-PACKAGES>
</AUTOSAR>
